import { reactive, ref } from 'vue'
import { GetAllStationDetail } from '@/utils/api/dispatch/station'
import { GetAllRoad, RoadList } from '@/utils/api/dispatch/road'

// 模拟数据
// import { stations } from './demoJson/stations2'
// import { roads } from './demoJson/roads2'



// 异步读取文件函数
async function readFile() {
    // 获取道路信息
    const roads = await getRoads()
    // 获取站点信息
    const stations = await getStations()
    // const getRoad2 = await getRoad()

    // const roads = await GetAllRoad({mapId:1,pageNumber,pageSize});
    // const { Content:stations } = await GetAllStationDetail({mapid:1});
    // 遍历道路信息
    roads.forEach(v => {
        // 根据道路的起始站点id，找到对应的站点信息
        let { x: x1, y: y1 } = stations.find(j => { return j.stationid === v.start })
        // 根据道路的终点站点id，找到对应的站点信息
        let { x: x2, y: y2 } = stations.find(j => { return j.stationid === v.end })
        // 将站点信息添加到道路信息中
        Object.assign(v, { points: [x1, y1, x2, y2] })
    })

    // 将道路信息中的坐标乘以100
    roads.map(v => {
        return Object.assign(v, { points: v.points.map(j => { return j * 100 }), assistList: v.assistList.map(j => { return { x: j.x * 100, y: j.y * 100 } }) })
    })
    // 将站点信息中的坐标乘以100
    stations.map(v => {
        return Object.assign(v, { x: v.x * 100, y: v.y * 100 })
    })


    // 返回道路和站点信息
    return {
        roads: roads,
        stations: stations
    }
}

// 获取道路信息
async function getRoads() {
    var allData = [];
    var pageNumber = 0
    var pageSize = 400
    var hasMore = true;

    // 循环获取所有道路信息
    while (hasMore) {
        const { Content } = await GetAllRoad({ mapId: 1, pageNumber, pageSize });
        // console.log('道路信息=>', Content);

        // 如果没有更多数据，则停止循环
        if (Content.length === 0) hasMore = false;

        // 将获取到的数据合并到allData中
        allData = allData.concat(Content);
        pageNumber++;
    }

    // 返回所有道路信息
    return allData;
}

// 获取站点信息
async function getStations() {
    var allData = [];
    var pageNumber = 0
    var pageSize = 500
    var hasMore = true;

    // 循环获取所有站点信息
    while (hasMore) {
        const { Content } = await GetAllStationDetail({ pageNumber, pageSize });
        // 如果没有更多数据，则停止循环
        if (Content.length === 0) hasMore = false;
        // 将获取到的数据添加到allData中
        allData = allData.concat(Content);
        pageNumber++;
    }
    // 返回所有站点信息
    return allData;
}


// 获取路段信息
// async function getRoad() {
//     var allData = [];
//     var pageNumber = 0
//     var pageSize = 100
//     var hasMore = true;

//     // 循环获取所有站点信息
//     while (hasMore) {
//         //     const { Content } = await RoadList({ pageNumber, pageSize});
//         const { Content: { Results } } = await RoadList({ pageNumber, pageSize })
//         // 如果没有更多数据，则停止循环
//         if (!Results) hasMore = false;
//         // 将获取到的数据添加到allData中
//         allData = allData.concat(Results);
//         pageNumber++;
//     }
//     // const { Content: { Results } } = await RoadList({ pageNumber, pageSize })
//     console.log('路段信息=>', allData);

//     // 返回所有站点信息
//     return allData;
// }

// 导出readFile函数
export { readFile }